/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package utilidades;

import java.io.FileReader;
import java.io.File;
import javax.swing.JFileChooser;
import java.util.Hashtable;

/**
 *
 * @author yojugracu
 */
public class CargarArchivo {
    
    //Carga el archivo enviandole la ruta de donde se encuentra el archivo
    public void cargar( File f ){
        FileReader fr_entrada = null;
        try{
            fr_entrada = new FileReader( f );
            Lexico lex = new Lexico( fr_entrada );
            Parser par = new Parser(lex);
            par.parse(); 
            datos = new Datos( par.getTablaDatos() );
        }catch( Exception e ){ e.printStackTrace(); }
        finally{
            try{
                if( fr_entrada != null ) fr_entrada.close();
            }catch( Exception e ){ e.printStackTrace(); }
        }
    }
    
    //Carga el archivo con interfaz
    public void cargarUI(){
        if( jfcCargar == null )
            jfcCargar = new JFileChooser();
        
        jfcCargar.setFileSelectionMode( JFileChooser.FILES_ONLY );
        
        int seleccion = jfcCargar.showOpenDialog(jfcCargar);
        
        if( seleccion == JFileChooser.APPROVE_OPTION ){
            FileReader fr_entrada = null;
            try{
                File f = jfcCargar.getSelectedFile();
                fr_entrada = new FileReader( f );
                Lexico lex = new Lexico( fr_entrada );
                Parser par = new Parser(lex);
                par.parse(); 
                
                datos = new Datos( par.getTablaDatos() );
            }catch( Exception e ){ e.printStackTrace(); }
            finally{
                try{
                    if( fr_entrada != null ) fr_entrada.close();
                }catch( Exception e ){ e.printStackTrace(); }
            }
        }
    }
    
    public Datos getDatos(){
        return datos;
    }
    
    JFileChooser jfcCargar;
    Datos datos;
}
